with Ada.Text_Io; use Ada.Text_Io;
with Dictionnaires;

procedure Test_Dico_Hash_3der is

   Taille: constant Positive := 5;

   function Hash_3der(Mot: String) return Natural is
   begin
      if Mot'Length >= 3 then
         return Character'Pos(Mot(Mot'last)) + Character'Pos(Mot(Mot'Last-1)) +
           Character'Pos(Mot(Mot'Last-2));
      elsif Mot'Length =2 then
         return Character'Pos(Mot(Mot'last)) + Character'Pos(Mot(Mot'Last-1));
      else -- mot'length=1
         return Character'Pos(Mot(Mot'last));
      end if;
   end Hash_3der;



   package Dico_Hash_3der is new Dictionnaires(Taille, False, Hash_3der);

   Fich: File_Type; -- fichier de test contenant un dictionnaire
   -- dictionnaire :
   Dhb: Dico_Hash_3der.Dictionnaire := Dico_Hash_3der.Cree_Dico;
begin

   declare -- un nouveau bloc
         S: String := "dico_gros.txt";
   begin
      Open(Fich, In_File, S);
   exception
      when Name_Error => Put_Line("fichier inexistant !"); return;
   end;

   -- remplissage du dictionnaire
   Dico_Hash_3der.Remplit_Dico(Fich, Dhb);

   -- statistiques de dispersion sur ces dictionnaires
   Ada.Text_Io.New_Line;
   Dico_Hash_3der.Dispersion(Dhb);


   -- fermeture du fichier test
   Close(Fich);

end Test_Dico_Hash_3der;
